#ifndef DIALOGSETTING_H
#define DIALOGSETTING_H


namespace Ui {
class DialogSetting;
}

/**
 * @brief 设置对话框
 */
class DialogSetting : public QDialog
{
    Q_OBJECT

public:
    explicit DialogSetting(QWidget *parent = nullptr);
    ~DialogSetting();

    // ui->lineEditUserName 控件
    QString getUserName();
    void    setUserName(QByteArray userId);

    // ui->lineEditNickName
    QString getUserNickName();
    void    setUserNickName(QByteArray userNickName);

    // ui->lineEditGroupName
    QString getGroupName();
    void    setGroupName(QByteArray groupName);

    // lineEditStartIp
    QString getStartIp();
    void    setStartIp(unsigned int ip);

    // lineEditEndIp
    QString getEndIp();
    void    setEndIp(unsigned int ip);

signals:
    // 对话框关闭信号
    void setDialogClose();

    // 对话框接受信号
    void setDialogAccepted();

    // 对话框拒收信号
    void setDialogRejected();

private:
    Ui::DialogSetting *ui;

protected:
    // 关闭事件处理函数,发出关闭信号
    void closeEvent(QCloseEvent *event);
    // 事件分派,针对语言变化信号
    bool event(QEvent *event);

private slots:
    void on_lineEditUserName_textEdited(const QString &arg1);
    void on_lineEditNickName_textEdited(const QString &arg1);
    void on_lineEditGroupName_textEdited(const QString &arg1);
    void on_lineEditStartIp_textEdited(const QString &arg1);
    void on_lineEditEndIp_textEdited(const QString &arg1);
    void on_pushButtonAccept_clicked();
    void on_pushButtonCancel_clicked();
};

#endif // DIALOGSETTING_H
